package com.taowan.xunbaozl.morning_speak.design_pattern.day15;

/**
 * com.taowan.xunbaozl.morning_speak.day160310.app
 * Created by diql on 2016/3/10.
 * 用途：
 * 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
 * 适用于内部有多种 if,else 判断的情况。
 * 相似模式：
 * 状态模式：可能返回不同的方法；
 * 策略模式：一般用于封装算法（实现方式的区别）
 * 模板模式：同一个方法的不同实现；（行为型）
 * 工厂模式：返回不同的类；（创建型）
 */
public class Test {
    public static void main(String[] args) {
        Status status = new Status();
        Context context = new Context(status);
        status.setValue(true);
        context.doFunction();
        status.setValue(false);
        context.doFunction();
    }
}
